In computer networks, a number of network stations are typically interconnected via a communications medium. For example, Ethernet 802.3 is a commonly used local area network (LAN) scheme in which multiple stations are connected to a shared or dedicated serial data path. These stations often communicate with a switch or some other network device located between the data path and the stations connected to that path. The switch typically controls the communication of packets and includes logic for receiving and forwarding packets to their appropriate destinations.
A common problem in conventional network switches is how to control the traffic (e.g., the volume or rate of packets) transmitted from the switches. Traffic may be controlled to obtain some quality of service goal, such as minimizing packet loss or congestion. Some switches may use traffic shaping techniques to control traffic. “Traffic shaping” is forcing the traffic to conform to a certain specified behavior. For example, a switch might delay some packets slightly in order to reduce the peak rate and rate variance without affecting throughput.
Conventional traffic shaping techniques, however, do not permit the traffic to be controlled or fine tuned for each flow (packet stream) through a network switch.